home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Floppyshop 2
/
Floppyshop - 2.zip
/
Floppyshop - 2.iso
/
art&graf.ix
/
art-0074
/
mikrodrw
/
part_4.gfa
(
.txt
)
< prev
next >
Wrap
GFA-BASIC Atari
|
1997-04-16
|
3KB
|
93 lines
'
' Mikrodraw
'
' Teil 4
'
' Programmiert von Konstantinos Lavassas
' Januar/Februar 1990
'
' Redaktion: Ulrich Hilgefort
'
' für: TOS - Magazin + Software für Atari ST und TT
'
' ----------------------------------------------------------------------------
'
' Je nach Notwendigkeit entweder hcp_9 (für 24-Nadler) oder hcp_9a (für 9er)
' anwenden.
'
> PROCEDURE drucken
'
ALERT 1," | Hardcopy ? ",1," klar | nein",zz% ! Sicherheitsabfrage
IF zz%=2
GOTO end_druck
ENDIF
WHILE BIOS(8,0)=0 ! Parallelport testen
ALERT 3," | Drucker nicht bereit ! ",1,"nochmal|Abbruch",zz%
IF zz%=2 !
GOTO end_druck ! abbrechen
ENDIF
WEND
@vollbild ! Bildschirm freiräumen
HIDEM ! Maus verstecken
IF me%=60 ! Systemhardcopy:
HARDCOPY ! HC auslösen
ENDIF
IF me%=59 ! 9-Nadel-Druckroutine
@hcp_9 ! aufrufen
ENDIF
'
LPRINT CHR$(12) ! Seite auswerfen
'
SHOWM ! Maus wieder ein
end_druck: ! im Abbruchfall geht's
RETURN ! hier raus
'
> PROCEDURE hcp_9
'
adr#=XBIOS(3)
drucker_init$=CHR$(27)+"l"+CHR$(20) ! Linker Rand oder ähnliches
start$=CHR$(27)+"*"+CHR$(39)+CHR$(144)+CHR$(1) ! Druckersteuerung
' ESC * ' = 399 ! (siehe Text)
'
vorschub$=CHR$(27)+"J"+CHR$(23)+CHR$(13) ! Zeilenvorschub einstellen
'
OPEN "O",#2,"LST:" ! Ausgabe auf Printer
PRINT #2,drucker_init$;
PRINT #2,CHR$(13) ! Zeilenvorschub
FOR i%=0 TO 78 STEP 3 ! alle Spalten durch
PRINT #2,start$;
FOR j%=399 TO 0 STEP -1 ! alle Zeilen durch
date%=adr#+(j%*80)++i% ! Daten holen
PRINT #2,CHR$(PEEK(date%+0)); ! und jeweils 3 hinterein-
PRINT #2,CHR$(PEEK(date%+1)); ! ander ausgeben, bei den
IF i%<78 ! letzten Zeilen
PRINT #2,CHR$(PEEK(date%+2)); ! nur zwei Spalten
ELSE ! drucken
PRINT #2,CHR$(0);
ENDIF
NEXT j%
PRINT #2,vorschub$; ! passender Zeilenvorschub
NEXT i%
'
CLOSE #2
RETURN
'
> PROCEDURE hcp_9a
'
p_adr%=XBIOS(3)
puffer$=SPACE$(400)
drucker_init$=CHR$(27)+"*"+CHR$(5)+CHR$(400)+CHR$(1.5625) ! Grafikmodus
'
FOR start%=p_adr% TO p_adr%+79 ! 80 Durchgänge
adr%=VARPTR(puffer$)
z%=start%+32000 !
REPEAT ! Vertikal abtasten
SUB z%,80 ! nächste Zeile
BYTE{adr%}=BYTE{z%} ! Daten umkopieren
INC adr% ! weiter
UNTIL z%=start%
LPRINT drucker_init$;puffer$;CHR$(13);CHR$(27);"J";CHR$(24); ! Zeile ausgeben
NEXT start%
RETURN
'